package cn.git.agent.init;

import javassist.CtClass;

/**
 * @description: 基础采集类，定义通用采集方法
 * @program: bank-credit-sy
 * @author: lixuchun
 * @create: 2024-03-18 08:30:36
 */
public interface BasicCollect {

	/**
	 * 判定是否为采集目录
	 * @param className
	 * @param loader
	 * @param ctclass
	 * @return
	 */
	boolean isTarget(String className, ClassLoader loader, CtClass ctclass);

	/**
	 * 对目标类进行转换
	 * @param loader 类加载器
	 * @param className 类名称
	 * @param classfileBuffer 类字节码
	 * @param ctclass ctclass
	 * @return 改造后类字节码
	 * @throws Exception
	 */
	byte[] transform(ClassLoader loader, String className, byte[] classfileBuffer, CtClass ctclass) throws Exception;
}
